#ifndef _TF_GEOM_OBJECT_MANAGER_H_
#define _TF_GEOM_OBJECT_MANAGER_H_

#include "tf_Geom_Object.h"
#include "tf_Common.h"
#include <utility>
#include <map>

class dllDeclspec TfGeomObjectManager
{
protected:
	TfGeomObjectManager();
	~TfGeomObjectManager();
public:
	virtual int Begin();
	virtual int End();
	virtual int Next();
	virtual int GetNum();
	virtual bool Delete(int id);
	virtual void AddToMap(int id,int idx);
	virtual int GetCurId();
	virtual int operator[](int id) const;
	virtual int GetMaxId();
	virtual void Compress();
	virtual void AddToDataBase(int idx, TfGeomObject* obj) = 0;
	virtual void AdditionSpace() = 0;


protected:
	int m_ver;
	int m_curId;
	TfGeomObjectVec m_data;
	std::map<int,int> m_idMap;

};




#endif